import { useLocalStorage } from '@vueuse/core';
import type { ILeftAsideConfigItem } from '@/components/mt-edit/store/types';

export function useImageMigration() {
  const local_file = useLocalStorage<ILeftAsideConfigItem[]>('mt-local-file', []);

  const isBase64Image = (url: string): boolean => {
    return url.startsWith('data:image/');
  };

  const isServerImage = (url: string): boolean => {
    return url.includes('/images/') && !url.startsWith('data:');
  };

  const getImageDisplayUrl = (thumbnail: string): string => {
    // 如果是服务器URL，直接返回
    if (isServerImage(thumbnail)) {
      return thumbnail;
    }

    // 如果是base64，也直接返回（向后兼容）
    if (isBase64Image(thumbnail)) {
      return thumbnail;
    }

    // 其他情况，假设是服务器上的文件名
    const baseUrl = import.meta.env.VITE_API_BASE_URL || 'http://localhost:3000';
    return `${baseUrl}/images/${thumbnail}`;
  };

  const migrateLocalFiles = () => {
    // 这个函数可以用来迁移现有的base64图片到服务器
    // 目前保持base64格式以保证向后兼容
    return local_file.value;
  };

  return {
    isBase64Image,
    isServerImage,
    getImageDisplayUrl,
    migrateLocalFiles
  };
}
